Derivation algorithms